﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ServiceModel.Channels;
using System.ComponentModel;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EstabelecimentoWS;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.RelatorioWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class EstabelecimentoVerRankingEstabelecimentos : System.Web.UI.Page
    {

        PubClub_Estabelecimento_WS webServiceEstabelecimento = new PubClub_Estabelecimento_WS();
        PubClub_Relatorio_WS webServiceRelatorio = new PubClub_Relatorio_WS();
        ObjetoEstabelecimento estabelecimento;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Estabelecimento"] == null)
            {
                Response.Redirect("Login.aspx?Logout=2");
            }
            else
            {
                estabelecimento = webServiceEstabelecimento.GetEstabelecimento(Convert.ToInt32(Session["Estabelecimento"]));
            }

            TableHeaderCell celulaCabecalhoPosicao = new TableHeaderCell();
            Label labelCabecalhoPosicao = new Label();

            TableHeaderRow linhaCabecalho = new TableHeaderRow();

            TableHeaderCell celulaCabecalhoNomeEstabelecimento = new TableHeaderCell();
            Label labelCabecalhoNomeEstabelecimento = new Label();

            TableHeaderCell celulaCabecalhoNota = new TableHeaderCell();
            Label labelCabecalhoNota = new Label();

            labelCabecalhoPosicao.Text = "Posição";
            celulaCabecalhoPosicao.Controls.Add(labelCabecalhoPosicao);
            linhaCabecalho.Cells.Add(celulaCabecalhoPosicao);


            labelCabecalhoNomeEstabelecimento.Text = "Estabelecimento";
            celulaCabecalhoNomeEstabelecimento.Controls.Add(labelCabecalhoNomeEstabelecimento);
            linhaCabecalho.Cells.Add(celulaCabecalhoNomeEstabelecimento);

            labelCabecalhoNota.Text = "Nota";
            celulaCabecalhoNota.Controls.Add(labelCabecalhoNota);
            linhaCabecalho.Cells.Add(celulaCabecalhoNota);

            BindingList<RankingEstabelecimento> listaRankingMelhoresEstabelecimentos = new BindingList<RankingEstabelecimento>(webServiceRelatorio.MelhoresEstabelecimentos());

            TabelaMelhoresEstabelecimentos.Rows.Add(linhaCabecalho);

            int i = 0;

            if (listaRankingMelhoresEstabelecimentos.Count == 0)
            {
                LabelAviso.Text = "Você não tem extrato.";
                LabelAviso.Visible = true;
            }
            else
            {
                TabelaMelhoresEstabelecimentos.Visible = true;
                LabelAviso.Visible = false;

                foreach (var item in listaRankingMelhoresEstabelecimentos)
                {
                    TableRow linhaDados = new TableRow();

                    TableCell celulaPosicao = new TableCell();
                    Label labelPosicao = new Label();

                    TableCell celulaNomeDoEstabelecimento = new TableCell();
                    Label labelNomeDoEstabelecimento = new Label();

                    TableCell celulaNota = new TableCell();
                    Label labelNota = new Label();

                    if (i % 2 != 0)
                    {
                        linhaDados.CssClass = "odd";
                    }
                    i++;

                    labelPosicao.Text = i.ToString() + "º"; ;
                    celulaPosicao.Controls.Add(labelPosicao);
                    linhaDados.Cells.Add(celulaPosicao);

                    labelNomeDoEstabelecimento.Text = item.Nome;
                    celulaNomeDoEstabelecimento.Controls.Add(labelNomeDoEstabelecimento);
                    linhaDados.Cells.Add(celulaNomeDoEstabelecimento);

                    labelNota.Text = item.Nota.ToString("N1");
                    celulaNota.Controls.Add(labelNota);
                    celulaNota.CssClass = "alignRight";
                    linhaDados.Cells.Add(celulaNota);

                    TabelaMelhoresEstabelecimentos.Rows.Add(linhaDados);
                }
            }
        }
    }
}